知识点名称:WebView的使用
编号: K9-1
前驱知识点编号:K3-1,K3-2
作者:
讲义内容:
1、Webview自身的常见方法。
loadUrl()方法:指定将要访问的网络url
2、Webview的最常用的子类:
(WebSettings类、WebViewClient类、WebChromeClient类)。
3、Android可以和JavaScript的相互调用。
在平常开发时,WebView与javascript是可以相互调用的,但是我们把一个apk正式发布的时候,需要打一个release包,release包的作用就是把代码做混淆,但是如果一旦混淆之后,如果不加保护,webview与javascript就无法互相调用的。比如说,在javascript中调用一些本地的方法,但是一旦打了混淆包后,没有保护措施的话会发现调用的方法不起作用。
4、WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。本次实验我们要熟悉WebView的使用。
4.1 在应用程序中添加WebView
要向你的应用程序添加一个WebView,只需在活动布局中包含“WebView”元素。例如,这里有一个布局文件,其中WebView填满了屏幕:
要在WebView中加载一个web页面,请使用loadUrl()。
然而,在此之前,你的应用程序必须能够访问Internet。要获得Internet访问权限,请在你的清单文件中请求Internet权限:
4.2 在WebView中使用JavaScript
如果打算在WebView中加载的web页面使用JavaScript,那么必须为WebView启用JavaScript。一旦启用了JavaScript,还可以在应用程序代码和JavaScript代码之间创建接口。
启用JavaScript
将JavaScript代码绑定到Android代码
当开发一个专门为Android应用程序WebView设计的web应用程序时,可以在JavaScript代码和客户端Android代码之间创建接口。例如,JavaScript代码可以在Android代码中调用一个方法来显示一个对话框,而不是使用JavaScript的alert()函数。
可以将这个类绑定到在WebView中运行addJavascriptInterface()的JavaScript,并命名该接口为Android:
这就成功在WebView中运行的JavaScript创建了一个名为Android的界面。此时,web应用程序可以访问WebAppInterface类。例如,这里有一些HTML和JavaScript,当用户单击按钮时,使用新界面创建toast消息。
4.3 处理页面导航
当用户在WebView中单击一个web页面的链接时,默认的行为是Android启动一个处理url的应用程序。通常,默认的web浏览器打开并加载目标URL。但是,可以为WebView覆盖此行为,因此在WebView中打开链接。然后,可以允许用户通过WebView维护的web页面历史进行向后和向前的导航。
要打开用户点击的链接,只需使用setWebViewClient()为你的WebView提供一个WebViewClient。
如果想要更多地控制点击链接的负载,创建自己的WebViewClient,它覆盖了应该使用的方法。
然后为WebView创建一个新的WebViewClient实例:
4.4 浏览网页的历史
当WebView覆盖了URL加载时,它会自动地积累访问过的web页面的历史。可以通过goBack()和goForward()来向后和向前导航。
例如,以下是如何使用设备后退按钮来向后导航:
这样我们就完成了对WebView组件的使用。